package filelist

import (
	"io/ioutil"
	"net/http"
	"os"
	"strings"
)

const prefix = "/list/" // url 参数

type userErro string // 接口实现者 可以和接口不同名

func (e userErro) Error() string { // 实现者实现error方法
	return e.Message()
}

func (e userErro) Message() string { // 实现者实现Message()方法
	return string(e)
}

func HandleFileList(writer http.ResponseWriter,
	request *http.Request) error {
	if strings.Index(request.URL.Path, prefix) != 0 {
		return userErro("path must start " + "with" + prefix)
		// errors.New("path must start " + "with" + prefix)
	}
	path := request.URL.Path[len(prefix):] // 自定义的url
	file, err := os.Open(path)
	if err != nil {
		// 记录错误信息
		//http.Error(writer,
		//	err.Error(),
		//	http.StatusInternalServerError)
		return err
	}
	defer file.Close()
	all, err := ioutil.ReadAll(file)
	if err != nil {
		return err
	}

	writer.Write(all)
	return nil
}
